package com.chuangjiangx.member.coupon.dao.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class InMbrCouponExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public InMbrCouponExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andIdIsNull() {
            addCriterion("imc.id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("imc.id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("imc.id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("imc.id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("imc.id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("imc.id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("imc.id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("imc.id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("imc.id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("imc.id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("imc.id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("imc.id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andCouponNumberIsNull() {
            addCriterion("imc.coupon_number is null");
            return (Criteria) this;
        }

        public Criteria andCouponNumberIsNotNull() {
            addCriterion("imc.coupon_number is not null");
            return (Criteria) this;
        }

        public Criteria andCouponNumberEqualTo(String value) {
            addCriterion("imc.coupon_number =", value, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberNotEqualTo(String value) {
            addCriterion("imc.coupon_number <>", value, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberGreaterThan(String value) {
            addCriterion("imc.coupon_number >", value, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberGreaterThanOrEqualTo(String value) {
            addCriterion("imc.coupon_number >=", value, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberLessThan(String value) {
            addCriterion("imc.coupon_number <", value, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberLessThanOrEqualTo(String value) {
            addCriterion("imc.coupon_number <=", value, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberLike(String value) {
            addCriterion("imc.coupon_number like", value, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberNotLike(String value) {
            addCriterion("imc.coupon_number not like", value, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberIn(List<String> values) {
            addCriterion("imc.coupon_number in", values, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberNotIn(List<String> values) {
            addCriterion("imc.coupon_number not in", values, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberBetween(String value1, String value2) {
            addCriterion("imc.coupon_number between", value1, value2, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andCouponNumberNotBetween(String value1, String value2) {
            addCriterion("imc.coupon_number not between", value1, value2, "couponNumber");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIsNull() {
            addCriterion("imc.merchant_id is null");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIsNotNull() {
            addCriterion("imc.merchant_id is not null");
            return (Criteria) this;
        }

        public Criteria andMerchantIdEqualTo(Long value) {
            addCriterion("imc.merchant_id =", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotEqualTo(Long value) {
            addCriterion("imc.merchant_id <>", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdGreaterThan(Long value) {
            addCriterion("imc.merchant_id >", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdGreaterThanOrEqualTo(Long value) {
            addCriterion("imc.merchant_id >=", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdLessThan(Long value) {
            addCriterion("imc.merchant_id <", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdLessThanOrEqualTo(Long value) {
            addCriterion("imc.merchant_id <=", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIn(List<Long> values) {
            addCriterion("imc.merchant_id in", values, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotIn(List<Long> values) {
            addCriterion("imc.merchant_id not in", values, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdBetween(Long value1, Long value2) {
            addCriterion("imc.merchant_id between", value1, value2, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotBetween(Long value1, Long value2) {
            addCriterion("imc.merchant_id not between", value1, value2, "merchantId");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("imc.name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("imc.name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("imc.name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("imc.name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("imc.name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("imc.name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("imc.name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("imc.name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("imc.name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("imc.name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("imc.name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("imc.name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("imc.name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("imc.name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andAmountIsNull() {
            addCriterion("imc.amount is null");
            return (Criteria) this;
        }

        public Criteria andAmountIsNotNull() {
            addCriterion("imc.amount is not null");
            return (Criteria) this;
        }

        public Criteria andAmountEqualTo(BigDecimal value) {
            addCriterion("imc.amount =", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountNotEqualTo(BigDecimal value) {
            addCriterion("imc.amount <>", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountGreaterThan(BigDecimal value) {
            addCriterion("imc.amount >", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("imc.amount >=", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountLessThan(BigDecimal value) {
            addCriterion("imc.amount <", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("imc.amount <=", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountIn(List<BigDecimal> values) {
            addCriterion("imc.amount in", values, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountNotIn(List<BigDecimal> values) {
            addCriterion("imc.amount not in", values, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("imc.amount between", value1, value2, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("imc.amount not between", value1, value2, "amount");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("imc.type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("imc.type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Integer value) {
            addCriterion("imc.type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Integer value) {
            addCriterion("imc.type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Integer value) {
            addCriterion("imc.type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("imc.type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Integer value) {
            addCriterion("imc.type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Integer value) {
            addCriterion("imc.type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Integer> values) {
            addCriterion("imc.type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Integer> values) {
            addCriterion("imc.type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Integer value1, Integer value2) {
            addCriterion("imc.type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("imc.type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeIsNull() {
            addCriterion("imc.coupon_source_type is null");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeIsNotNull() {
            addCriterion("imc.coupon_source_type is not null");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeEqualTo(Integer value) {
            addCriterion("imc.coupon_source_type =", value, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeNotEqualTo(Integer value) {
            addCriterion("imc.coupon_source_type <>", value, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeGreaterThan(Integer value) {
            addCriterion("imc.coupon_source_type >", value, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("imc.coupon_source_type >=", value, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeLessThan(Integer value) {
            addCriterion("imc.coupon_source_type <", value, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeLessThanOrEqualTo(Integer value) {
            addCriterion("imc.coupon_source_type <=", value, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeIn(List<Integer> values) {
            addCriterion("imc.coupon_source_type in", values, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeNotIn(List<Integer> values) {
            addCriterion("imc.coupon_source_type not in", values, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeBetween(Integer value1, Integer value2) {
            addCriterion("imc.coupon_source_type between", value1, value2, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andCouponSourceTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("imc.coupon_source_type not between", value1, value2, "couponSourceType");
            return (Criteria) this;
        }

        public Criteria andLogoIsNull() {
            addCriterion("imc.logo is null");
            return (Criteria) this;
        }

        public Criteria andLogoIsNotNull() {
            addCriterion("imc.logo is not null");
            return (Criteria) this;
        }

        public Criteria andLogoEqualTo(String value) {
            addCriterion("imc.logo =", value, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoNotEqualTo(String value) {
            addCriterion("imc.logo <>", value, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoGreaterThan(String value) {
            addCriterion("imc.logo >", value, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoGreaterThanOrEqualTo(String value) {
            addCriterion("imc.logo >=", value, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoLessThan(String value) {
            addCriterion("imc.logo <", value, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoLessThanOrEqualTo(String value) {
            addCriterion("imc.logo <=", value, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoLike(String value) {
            addCriterion("imc.logo like", value, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoNotLike(String value) {
            addCriterion("imc.logo not like", value, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoIn(List<String> values) {
            addCriterion("imc.logo in", values, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoNotIn(List<String> values) {
            addCriterion("imc.logo not in", values, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoBetween(String value1, String value2) {
            addCriterion("imc.logo between", value1, value2, "logo");
            return (Criteria) this;
        }

        public Criteria andLogoNotBetween(String value1, String value2) {
            addCriterion("imc.logo not between", value1, value2, "logo");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitIsNull() {
            addCriterion("imc.mini_expend_limit is null");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitIsNotNull() {
            addCriterion("imc.mini_expend_limit is not null");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitEqualTo(BigDecimal value) {
            addCriterion("imc.mini_expend_limit =", value, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitNotEqualTo(BigDecimal value) {
            addCriterion("imc.mini_expend_limit <>", value, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitGreaterThan(BigDecimal value) {
            addCriterion("imc.mini_expend_limit >", value, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("imc.mini_expend_limit >=", value, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitLessThan(BigDecimal value) {
            addCriterion("imc.mini_expend_limit <", value, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitLessThanOrEqualTo(BigDecimal value) {
            addCriterion("imc.mini_expend_limit <=", value, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitIn(List<BigDecimal> values) {
            addCriterion("imc.mini_expend_limit in", values, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitNotIn(List<BigDecimal> values) {
            addCriterion("imc.mini_expend_limit not in", values, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("imc.mini_expend_limit between", value1, value2, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andMiniExpendLimitNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("imc.mini_expend_limit not between", value1, value2, "miniExpendLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitIsNull() {
            addCriterion("imc.claim_upper_limit is null");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitIsNotNull() {
            addCriterion("imc.claim_upper_limit is not null");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitEqualTo(Integer value) {
            addCriterion("imc.claim_upper_limit =", value, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitNotEqualTo(Integer value) {
            addCriterion("imc.claim_upper_limit <>", value, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitGreaterThan(Integer value) {
            addCriterion("imc.claim_upper_limit >", value, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitGreaterThanOrEqualTo(Integer value) {
            addCriterion("imc.claim_upper_limit >=", value, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitLessThan(Integer value) {
            addCriterion("imc.claim_upper_limit <", value, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitLessThanOrEqualTo(Integer value) {
            addCriterion("imc.claim_upper_limit <=", value, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitIn(List<Integer> values) {
            addCriterion("imc.claim_upper_limit in", values, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitNotIn(List<Integer> values) {
            addCriterion("imc.claim_upper_limit not in", values, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitBetween(Integer value1, Integer value2) {
            addCriterion("imc.claim_upper_limit between", value1, value2, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andClaimUpperLimitNotBetween(Integer value1, Integer value2) {
            addCriterion("imc.claim_upper_limit not between", value1, value2, "claimUpperLimit");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryIsNull() {
            addCriterion("imc.total_inventory is null");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryIsNotNull() {
            addCriterion("imc.total_inventory is not null");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryEqualTo(Long value) {
            addCriterion("imc.total_inventory =", value, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryNotEqualTo(Long value) {
            addCriterion("imc.total_inventory <>", value, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryGreaterThan(Long value) {
            addCriterion("imc.total_inventory >", value, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryGreaterThanOrEqualTo(Long value) {
            addCriterion("imc.total_inventory >=", value, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryLessThan(Long value) {
            addCriterion("imc.total_inventory <", value, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryLessThanOrEqualTo(Long value) {
            addCriterion("imc.total_inventory <=", value, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryIn(List<Long> values) {
            addCriterion("imc.total_inventory in", values, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryNotIn(List<Long> values) {
            addCriterion("imc.total_inventory not in", values, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryBetween(Long value1, Long value2) {
            addCriterion("imc.total_inventory between", value1, value2, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andTotalInventoryNotBetween(Long value1, Long value2) {
            addCriterion("imc.total_inventory not between", value1, value2, "totalInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryIsNull() {
            addCriterion("imc.avail_inventory is null");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryIsNotNull() {
            addCriterion("imc.avail_inventory is not null");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryEqualTo(Long value) {
            addCriterion("imc.avail_inventory =", value, "availInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryNotEqualTo(Long value) {
            addCriterion("imc.avail_inventory <>", value, "availInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryGreaterThan(Long value) {
            addCriterion("imc.avail_inventory >", value, "availInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryGreaterThanOrEqualTo(Long value) {
            addCriterion("imc.avail_inventory >=", value, "availInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryLessThan(Long value) {
            addCriterion("imc.avail_inventory <", value, "availInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryLessThanOrEqualTo(Long value) {
            addCriterion("imc.avail_inventory <=", value, "availInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryIn(List<Long> values) {
            addCriterion("imc.avail_inventory in", values, "availInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryNotIn(List<Long> values) {
            addCriterion("imc.avail_inventory not in", values, "availInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryBetween(Long value1, Long value2) {
            addCriterion("imc.avail_inventory between", value1, value2, "availInventory");
            return (Criteria) this;
        }

        public Criteria andAvailInventoryNotBetween(Long value1, Long value2) {
            addCriterion("imc.avail_inventory not between", value1, value2, "availInventory");
            return (Criteria) this;
        }

        public Criteria andValidTypeIsNull() {
            addCriterion("imc.valid_type is null");
            return (Criteria) this;
        }

        public Criteria andValidTypeIsNotNull() {
            addCriterion("imc.valid_type is not null");
            return (Criteria) this;
        }

        public Criteria andValidTypeEqualTo(Integer value) {
            addCriterion("imc.valid_type =", value, "validType");
            return (Criteria) this;
        }

        public Criteria andValidTypeNotEqualTo(Integer value) {
            addCriterion("imc.valid_type <>", value, "validType");
            return (Criteria) this;
        }

        public Criteria andValidTypeGreaterThan(Integer value) {
            addCriterion("imc.valid_type >", value, "validType");
            return (Criteria) this;
        }

        public Criteria andValidTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("imc.valid_type >=", value, "validType");
            return (Criteria) this;
        }

        public Criteria andValidTypeLessThan(Integer value) {
            addCriterion("imc.valid_type <", value, "validType");
            return (Criteria) this;
        }

        public Criteria andValidTypeLessThanOrEqualTo(Integer value) {
            addCriterion("imc.valid_type <=", value, "validType");
            return (Criteria) this;
        }

        public Criteria andValidTypeIn(List<Integer> values) {
            addCriterion("imc.valid_type in", values, "validType");
            return (Criteria) this;
        }

        public Criteria andValidTypeNotIn(List<Integer> values) {
            addCriterion("imc.valid_type not in", values, "validType");
            return (Criteria) this;
        }

        public Criteria andValidTypeBetween(Integer value1, Integer value2) {
            addCriterion("imc.valid_type between", value1, value2, "validType");
            return (Criteria) this;
        }

        public Criteria andValidTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("imc.valid_type not between", value1, value2, "validType");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeIsNull() {
            addCriterion("imc.claimed_time is null");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeIsNotNull() {
            addCriterion("imc.claimed_time is not null");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeEqualTo(Integer value) {
            addCriterion("imc.claimed_time =", value, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeNotEqualTo(Integer value) {
            addCriterion("imc.claimed_time <>", value, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeGreaterThan(Integer value) {
            addCriterion("imc.claimed_time >", value, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeGreaterThanOrEqualTo(Integer value) {
            addCriterion("imc.claimed_time >=", value, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeLessThan(Integer value) {
            addCriterion("imc.claimed_time <", value, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeLessThanOrEqualTo(Integer value) {
            addCriterion("imc.claimed_time <=", value, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeIn(List<Integer> values) {
            addCriterion("imc.claimed_time in", values, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeNotIn(List<Integer> values) {
            addCriterion("imc.claimed_time not in", values, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeBetween(Integer value1, Integer value2) {
            addCriterion("imc.claimed_time between", value1, value2, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andClaimedTimeNotBetween(Integer value1, Integer value2) {
            addCriterion("imc.claimed_time not between", value1, value2, "claimedTime");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartIsNull() {
            addCriterion("imc.valid_time_start is null");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartIsNotNull() {
            addCriterion("imc.valid_time_start is not null");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartEqualTo(Date value) {
            addCriterionForJDBCDate("imc.valid_time_start =", value, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartNotEqualTo(Date value) {
            addCriterionForJDBCDate("imc.valid_time_start <>", value, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartGreaterThan(Date value) {
            addCriterionForJDBCDate("imc.valid_time_start >", value, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("imc.valid_time_start >=", value, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartLessThan(Date value) {
            addCriterionForJDBCDate("imc.valid_time_start <", value, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("imc.valid_time_start <=", value, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartIn(List<Date> values) {
            addCriterionForJDBCDate("imc.valid_time_start in", values, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartNotIn(List<Date> values) {
            addCriterionForJDBCDate("imc.valid_time_start not in", values, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("imc.valid_time_start between", value1, value2, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeStartNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("imc.valid_time_start not between", value1, value2, "validTimeStart");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndIsNull() {
            addCriterion("imc.valid_time_end is null");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndIsNotNull() {
            addCriterion("imc.valid_time_end is not null");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndEqualTo(Date value) {
            addCriterionForJDBCDate("imc.valid_time_end =", value, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndNotEqualTo(Date value) {
            addCriterionForJDBCDate("imc.valid_time_end <>", value, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndGreaterThan(Date value) {
            addCriterionForJDBCDate("imc.valid_time_end >", value, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("imc.valid_time_end >=", value, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndLessThan(Date value) {
            addCriterionForJDBCDate("imc.valid_time_end <", value, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("imc.valid_time_end <=", value, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndIn(List<Date> values) {
            addCriterionForJDBCDate("imc.valid_time_end in", values, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndNotIn(List<Date> values) {
            addCriterionForJDBCDate("imc.valid_time_end not in", values, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("imc.valid_time_end between", value1, value2, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andValidTimeEndNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("imc.valid_time_end not between", value1, value2, "validTimeEnd");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekIsNull() {
            addCriterion("imc.use_time_week is null");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekIsNotNull() {
            addCriterion("imc.use_time_week is not null");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekEqualTo(String value) {
            addCriterion("imc.use_time_week =", value, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekNotEqualTo(String value) {
            addCriterion("imc.use_time_week <>", value, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekGreaterThan(String value) {
            addCriterion("imc.use_time_week >", value, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekGreaterThanOrEqualTo(String value) {
            addCriterion("imc.use_time_week >=", value, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekLessThan(String value) {
            addCriterion("imc.use_time_week <", value, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekLessThanOrEqualTo(String value) {
            addCriterion("imc.use_time_week <=", value, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekLike(String value) {
            addCriterion("imc.use_time_week like", value, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekNotLike(String value) {
            addCriterion("imc.use_time_week not like", value, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekIn(List<String> values) {
            addCriterion("imc.use_time_week in", values, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekNotIn(List<String> values) {
            addCriterion("imc.use_time_week not in", values, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekBetween(String value1, String value2) {
            addCriterion("imc.use_time_week between", value1, value2, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeWeekNotBetween(String value1, String value2) {
            addCriterion("imc.use_time_week not between", value1, value2, "useTimeWeek");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayIsNull() {
            addCriterion("imc.use_time_day is null");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayIsNotNull() {
            addCriterion("imc.use_time_day is not null");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayEqualTo(String value) {
            addCriterion("imc.use_time_day =", value, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayNotEqualTo(String value) {
            addCriterion("imc.use_time_day <>", value, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayGreaterThan(String value) {
            addCriterion("imc.use_time_day >", value, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayGreaterThanOrEqualTo(String value) {
            addCriterion("imc.use_time_day >=", value, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayLessThan(String value) {
            addCriterion("imc.use_time_day <", value, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayLessThanOrEqualTo(String value) {
            addCriterion("imc.use_time_day <=", value, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayLike(String value) {
            addCriterion("imc.use_time_day like", value, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayNotLike(String value) {
            addCriterion("imc.use_time_day not like", value, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayIn(List<String> values) {
            addCriterion("imc.use_time_day in", values, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayNotIn(List<String> values) {
            addCriterion("imc.use_time_day not in", values, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayBetween(String value1, String value2) {
            addCriterion("imc.use_time_day between", value1, value2, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andUseTimeDayNotBetween(String value1, String value2) {
            addCriterion("imc.use_time_day not between", value1, value2, "useTimeDay");
            return (Criteria) this;
        }

        public Criteria andRemindTypeIsNull() {
            addCriterion("imc.remind_type is null");
            return (Criteria) this;
        }

        public Criteria andRemindTypeIsNotNull() {
            addCriterion("imc.remind_type is not null");
            return (Criteria) this;
        }

        public Criteria andRemindTypeEqualTo(Integer value) {
            addCriterion("imc.remind_type =", value, "remindType");
            return (Criteria) this;
        }

        public Criteria andRemindTypeNotEqualTo(Integer value) {
            addCriterion("imc.remind_type <>", value, "remindType");
            return (Criteria) this;
        }

        public Criteria andRemindTypeGreaterThan(Integer value) {
            addCriterion("imc.remind_type >", value, "remindType");
            return (Criteria) this;
        }

        public Criteria andRemindTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("imc.remind_type >=", value, "remindType");
            return (Criteria) this;
        }

        public Criteria andRemindTypeLessThan(Integer value) {
            addCriterion("imc.remind_type <", value, "remindType");
            return (Criteria) this;
        }

        public Criteria andRemindTypeLessThanOrEqualTo(Integer value) {
            addCriterion("imc.remind_type <=", value, "remindType");
            return (Criteria) this;
        }

        public Criteria andRemindTypeIn(List<Integer> values) {
            addCriterion("imc.remind_type in", values, "remindType");
            return (Criteria) this;
        }

        public Criteria andRemindTypeNotIn(List<Integer> values) {
            addCriterion("imc.remind_type not in", values, "remindType");
            return (Criteria) this;
        }

        public Criteria andRemindTypeBetween(Integer value1, Integer value2) {
            addCriterion("imc.remind_type between", value1, value2, "remindType");
            return (Criteria) this;
        }

        public Criteria andRemindTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("imc.remind_type not between", value1, value2, "remindType");
            return (Criteria) this;
        }

        public Criteria andActTimeStartIsNull() {
            addCriterion("imc.act_time_start is null");
            return (Criteria) this;
        }

        public Criteria andActTimeStartIsNotNull() {
            addCriterion("imc.act_time_start is not null");
            return (Criteria) this;
        }

        public Criteria andActTimeStartEqualTo(Date value) {
            addCriterion("imc.act_time_start =", value, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeStartNotEqualTo(Date value) {
            addCriterion("imc.act_time_start <>", value, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeStartGreaterThan(Date value) {
            addCriterion("imc.act_time_start >", value, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeStartGreaterThanOrEqualTo(Date value) {
            addCriterion("imc.act_time_start >=", value, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeStartLessThan(Date value) {
            addCriterion("imc.act_time_start <", value, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeStartLessThanOrEqualTo(Date value) {
            addCriterion("imc.act_time_start <=", value, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeStartIn(List<Date> values) {
            addCriterion("imc.act_time_start in", values, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeStartNotIn(List<Date> values) {
            addCriterion("imc.act_time_start not in", values, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeStartBetween(Date value1, Date value2) {
            addCriterion("imc.act_time_start between", value1, value2, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeStartNotBetween(Date value1, Date value2) {
            addCriterion("imc.act_time_start not between", value1, value2, "actTimeStart");
            return (Criteria) this;
        }

        public Criteria andActTimeEndIsNull() {
            addCriterion("imc.act_time_end is null");
            return (Criteria) this;
        }

        public Criteria andActTimeEndIsNotNull() {
            addCriterion("imc.act_time_end is not null");
            return (Criteria) this;
        }

        public Criteria andActTimeEndEqualTo(Date value) {
            addCriterion("imc.act_time_end =", value, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andActTimeEndNotEqualTo(Date value) {
            addCriterion("imc.act_time_end <>", value, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andActTimeEndGreaterThan(Date value) {
            addCriterion("imc.act_time_end >", value, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andActTimeEndGreaterThanOrEqualTo(Date value) {
            addCriterion("imc.act_time_end >=", value, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andActTimeEndLessThan(Date value) {
            addCriterion("imc.act_time_end <", value, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andActTimeEndLessThanOrEqualTo(Date value) {
            addCriterion("imc.act_time_end <=", value, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andActTimeEndIn(List<Date> values) {
            addCriterion("imc.act_time_end in", values, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andActTimeEndNotIn(List<Date> values) {
            addCriterion("imc.act_time_end not in", values, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andActTimeEndBetween(Date value1, Date value2) {
            addCriterion("imc.act_time_end between", value1, value2, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andActTimeEndNotBetween(Date value1, Date value2) {
            addCriterion("imc.act_time_end not between", value1, value2, "actTimeEnd");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNull() {
            addCriterion("imc.deleted is null");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNotNull() {
            addCriterion("imc.deleted is not null");
            return (Criteria) this;
        }

        public Criteria andDeletedEqualTo(Integer value) {
            addCriterion("imc.deleted =", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotEqualTo(Integer value) {
            addCriterion("imc.deleted <>", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThan(Integer value) {
            addCriterion("imc.deleted >", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanOrEqualTo(Integer value) {
            addCriterion("imc.deleted >=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThan(Integer value) {
            addCriterion("imc.deleted <", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanOrEqualTo(Integer value) {
            addCriterion("imc.deleted <=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedIn(List<Integer> values) {
            addCriterion("imc.deleted in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotIn(List<Integer> values) {
            addCriterion("imc.deleted not in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedBetween(Integer value1, Integer value2) {
            addCriterion("imc.deleted between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotBetween(Integer value1, Integer value2) {
            addCriterion("imc.deleted not between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("imc.remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("imc.remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("imc.remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("imc.remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("imc.remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("imc.remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("imc.remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("imc.remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("imc.remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("imc.remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("imc.remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("imc.remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("imc.remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("imc.remark not between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andWxColorIsNull() {
            addCriterion("imc.wx_color is null");
            return (Criteria) this;
        }

        public Criteria andWxColorIsNotNull() {
            addCriterion("imc.wx_color is not null");
            return (Criteria) this;
        }

        public Criteria andWxColorEqualTo(String value) {
            addCriterion("imc.wx_color =", value, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorNotEqualTo(String value) {
            addCriterion("imc.wx_color <>", value, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorGreaterThan(String value) {
            addCriterion("imc.wx_color >", value, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorGreaterThanOrEqualTo(String value) {
            addCriterion("imc.wx_color >=", value, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorLessThan(String value) {
            addCriterion("imc.wx_color <", value, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorLessThanOrEqualTo(String value) {
            addCriterion("imc.wx_color <=", value, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorLike(String value) {
            addCriterion("imc.wx_color like", value, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorNotLike(String value) {
            addCriterion("imc.wx_color not like", value, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorIn(List<String> values) {
            addCriterion("imc.wx_color in", values, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorNotIn(List<String> values) {
            addCriterion("imc.wx_color not in", values, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorBetween(String value1, String value2) {
            addCriterion("imc.wx_color between", value1, value2, "wxColor");
            return (Criteria) this;
        }

        public Criteria andWxColorNotBetween(String value1, String value2) {
            addCriterion("imc.wx_color not between", value1, value2, "wxColor");
            return (Criteria) this;
        }

        public Criteria andSyncTypeIsNull() {
            addCriterion("imc.sync_type is null");
            return (Criteria) this;
        }

        public Criteria andSyncTypeIsNotNull() {
            addCriterion("imc.sync_type is not null");
            return (Criteria) this;
        }

        public Criteria andSyncTypeEqualTo(String value) {
            addCriterion("imc.sync_type =", value, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeNotEqualTo(String value) {
            addCriterion("imc.sync_type <>", value, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeGreaterThan(String value) {
            addCriterion("imc.sync_type >", value, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeGreaterThanOrEqualTo(String value) {
            addCriterion("imc.sync_type >=", value, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeLessThan(String value) {
            addCriterion("imc.sync_type <", value, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeLessThanOrEqualTo(String value) {
            addCriterion("imc.sync_type <=", value, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeLike(String value) {
            addCriterion("imc.sync_type like", value, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeNotLike(String value) {
            addCriterion("imc.sync_type not like", value, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeIn(List<String> values) {
            addCriterion("imc.sync_type in", values, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeNotIn(List<String> values) {
            addCriterion("imc.sync_type not in", values, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeBetween(String value1, String value2) {
            addCriterion("imc.sync_type between", value1, value2, "syncType");
            return (Criteria) this;
        }

        public Criteria andSyncTypeNotBetween(String value1, String value2) {
            addCriterion("imc.sync_type not between", value1, value2, "syncType");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleIsNull() {
            addCriterion("imc.wx_center_sub_title is null");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleIsNotNull() {
            addCriterion("imc.wx_center_sub_title is not null");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleEqualTo(String value) {
            addCriterion("imc.wx_center_sub_title =", value, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleNotEqualTo(String value) {
            addCriterion("imc.wx_center_sub_title <>", value, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleGreaterThan(String value) {
            addCriterion("imc.wx_center_sub_title >", value, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleGreaterThanOrEqualTo(String value) {
            addCriterion("imc.wx_center_sub_title >=", value, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleLessThan(String value) {
            addCriterion("imc.wx_center_sub_title <", value, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleLessThanOrEqualTo(String value) {
            addCriterion("imc.wx_center_sub_title <=", value, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleLike(String value) {
            addCriterion("imc.wx_center_sub_title like", value, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleNotLike(String value) {
            addCriterion("imc.wx_center_sub_title not like", value, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleIn(List<String> values) {
            addCriterion("imc.wx_center_sub_title in", values, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleNotIn(List<String> values) {
            addCriterion("imc.wx_center_sub_title not in", values, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleBetween(String value1, String value2) {
            addCriterion("imc.wx_center_sub_title between", value1, value2, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxCenterSubTitleNotBetween(String value1, String value2) {
            addCriterion("imc.wx_center_sub_title not between", value1, value2, "wxCenterSubTitle");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusIsNull() {
            addCriterion("imc.wx_audit_status is null");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusIsNotNull() {
            addCriterion("imc.wx_audit_status is not null");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusEqualTo(Integer value) {
            addCriterion("imc.wx_audit_status =", value, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusNotEqualTo(Integer value) {
            addCriterion("imc.wx_audit_status <>", value, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusGreaterThan(Integer value) {
            addCriterion("imc.wx_audit_status >", value, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("imc.wx_audit_status >=", value, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusLessThan(Integer value) {
            addCriterion("imc.wx_audit_status <", value, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusLessThanOrEqualTo(Integer value) {
            addCriterion("imc.wx_audit_status <=", value, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusIn(List<Integer> values) {
            addCriterion("imc.wx_audit_status in", values, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusNotIn(List<Integer> values) {
            addCriterion("imc.wx_audit_status not in", values, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusBetween(Integer value1, Integer value2) {
            addCriterion("imc.wx_audit_status between", value1, value2, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxAuditStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("imc.wx_audit_status not between", value1, value2, "wxAuditStatus");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonIsNull() {
            addCriterion("imc.wx_refuse_reason is null");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonIsNotNull() {
            addCriterion("imc.wx_refuse_reason is not null");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonEqualTo(String value) {
            addCriterion("imc.wx_refuse_reason =", value, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonNotEqualTo(String value) {
            addCriterion("imc.wx_refuse_reason <>", value, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonGreaterThan(String value) {
            addCriterion("imc.wx_refuse_reason >", value, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonGreaterThanOrEqualTo(String value) {
            addCriterion("imc.wx_refuse_reason >=", value, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonLessThan(String value) {
            addCriterion("imc.wx_refuse_reason <", value, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonLessThanOrEqualTo(String value) {
            addCriterion("imc.wx_refuse_reason <=", value, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonLike(String value) {
            addCriterion("imc.wx_refuse_reason like", value, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonNotLike(String value) {
            addCriterion("imc.wx_refuse_reason not like", value, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonIn(List<String> values) {
            addCriterion("imc.wx_refuse_reason in", values, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonNotIn(List<String> values) {
            addCriterion("imc.wx_refuse_reason not in", values, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonBetween(String value1, String value2) {
            addCriterion("imc.wx_refuse_reason between", value1, value2, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxRefuseReasonNotBetween(String value1, String value2) {
            addCriterion("imc.wx_refuse_reason not between", value1, value2, "wxRefuseReason");
            return (Criteria) this;
        }

        public Criteria andWxCardIdIsNull() {
            addCriterion("imc.wx_card_id is null");
            return (Criteria) this;
        }

        public Criteria andWxCardIdIsNotNull() {
            addCriterion("imc.wx_card_id is not null");
            return (Criteria) this;
        }

        public Criteria andWxCardIdEqualTo(String value) {
            addCriterion("imc.wx_card_id =", value, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdNotEqualTo(String value) {
            addCriterion("imc.wx_card_id <>", value, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdGreaterThan(String value) {
            addCriterion("imc.wx_card_id >", value, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdGreaterThanOrEqualTo(String value) {
            addCriterion("imc.wx_card_id >=", value, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdLessThan(String value) {
            addCriterion("imc.wx_card_id <", value, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdLessThanOrEqualTo(String value) {
            addCriterion("imc.wx_card_id <=", value, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdLike(String value) {
            addCriterion("imc.wx_card_id like", value, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdNotLike(String value) {
            addCriterion("imc.wx_card_id not like", value, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdIn(List<String> values) {
            addCriterion("imc.wx_card_id in", values, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdNotIn(List<String> values) {
            addCriterion("imc.wx_card_id not in", values, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdBetween(String value1, String value2) {
            addCriterion("imc.wx_card_id between", value1, value2, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andWxCardIdNotBetween(String value1, String value2) {
            addCriterion("imc.wx_card_id not between", value1, value2, "wxCardId");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("imc.create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("imc.create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("imc.create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("imc.create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("imc.create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("imc.create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("imc.create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("imc.create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("imc.create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("imc.create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("imc.create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("imc.create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("imc.update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("imc.update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("imc.update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("imc.update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("imc.update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("imc.update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("imc.update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("imc.update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("imc.update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("imc.update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("imc.update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("imc.update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}